package org.bbx.autoops.utils;

import com.huaweicloud.sdk.hss.v5.model.Host;
import lombok.extern.slf4j.Slf4j;

import java.math.BigDecimal;
import java.util.HashMap;
import java.util.Map;

@Slf4j
public class ParamPackage {

    /**
     * 组装参数
     *
     * @param id
     * @param title
     * @param children
     * @return
     */
    public static Map<String, String> titleLevel(String id, String title, String children) {
        Map<String, String> m = new HashMap<>();
        m.put("id", id);
        m.put("title", title);
        m.put("children", children);
        return m;
    }


    /**
     * 组装参数
     *
     * @param titleLevel
     * @param chartContent
     * @return
     */
    public static Map<String, String> base(String titleLevel, String chartContent) {
        Map<String, String> m = new HashMap<>();
        m.put("titleLevel", titleLevel);
        m.put("chartContent", chartContent);
        return m;
    }


    /**
     * 组装参数
     *
     * @param maXYChaxis
     * @param value
     * @param xAxis
     * @param metricName
     * @param unit
     * @param id
     * @return
     */
    public static Map<String, String> xyChart(String maXYChaxis, String value, String xAxis, String metricName, String unit, String id) {
        Map<String, String> m = new HashMap<>();
        m.put("maxValue", maXYChaxis);
        m.put("value", value);
        m.put("xAxis", xAxis);
        m.put("title", metricName + "(" + unit + ")");
        m.put("name", metricName);
        m.put("id", id);
        return m;
    }


    /**
     * 组装参数
     *
     * @param id         序号
     * @param type       类型   ecs  rds
     * @param instanceId 实例id
     * @param dim        监控指标
     * @param threshold  阈值（判定是否正常）
     * @param status     状态（正常、异常）
     * @return
     */
    public static Map<String, String> tr(String id, String type, String  name,String instanceId, String dim, String threshold, String status) {
        Map<String, String> m = new HashMap<>();
        m.put("id", id);
        m.put("type", type);
        m.put("instanceId", instanceId);
        m.put("dim", dim);
        m.put("threshold", threshold);
        m.put("status", status);
        m.put("name", name);
        // #4CAF50:正常绿色
        // #F44336:异常红色
        // #FF9800:警告橙色
        // #9E9E9E:灰色
        String color = "#4CAF50";

        if ("异常".equals(status)) {
            color = "#F44336";

        } else if ("警告".equals(status)) {
            color = "#FF9800";
        }
        m.put("color", color);

        return m;
    }


    /**
     * 组装参数
     *
     * @param tr
     * @return
     */
    public static Object table(String tr) {
        Map<String, String> m = new HashMap<>();
        m.put("trContent", tr);
        return m;
    }


    /**
     * 组装参数
     * @param host
     * @return
     */
    public static Map<String, String> getHssTabletDataMap(Host host) {
        Map<String, String> m = new HashMap<>();
        m.put("hostName", host.getHostName());
        m.put("hostId", host.getHostId());
        m.put("hostStatus", host.getHostStatus());
        m.put("agentStatus", host.getAgentStatus());
        m.put("intrusion", String.valueOf(host.getIntrusion() == null ? 0 : host.getIntrusion()));
        m.put("vulnerability", String.valueOf(host.getVulnerability() == null ? 0 : host.getVulnerability()));
        m.put("baseline", String.valueOf(host.getBaseline() == null ? 0 : host.getBaseline()));
        m.put("protectStatus", host.getProtectStatus());
        return m;
    }

}